Linux磁盘分区基本操作

您所在的位置:网站首页 linux 分区操作 Linux磁盘分区基本操作

Linux磁盘分区基本操作

#Linux磁盘分区基本操作| 来源: 网络整理| 查看: 265

注意:本文全部信息均来自于《鸟哥私房菜》第二章·第二节 磁盘分区 & 第七章·第一节 磁盘的分区-格式化-检验-挂载

第一部分进行基本的磁盘概念介绍,第二部分介绍硬盘分区的实操过程(GPT格式)

一、磁盘连接方式和设备名称

Linux中所有设备均是以文件的形式存在,存储设备通常以以下两种形式存在:

正常物理机器使用的磁盘名称:/dev/sd[a-p] 虚拟机环境中为了加速会使用:/dev/vd[a-p] # 备注:SATA、USB、SAS磁盘接口均是使用SCSI模块进行驱动的,因此设备文件名称都是/dev/sd[a-p]格式 二、MBR(MS-DOS)和GPT磁盘分区表

磁盘构成:碟片、机械手臂、磁头、主轴马达

碟片:碟片上进行信息存储,分为扇区(Sector)和磁道(Track)。扇区的物理大小有两种:512字节和4K字节。

首个扇区:第一个扇区尤为重要,存储了整个磁盘的重要信息。早期信息存放为MBR(Master Boot Record);在2TB以上磁盘分区某些系统无法读取,因此有了GPT(GUID partition table)。

1、MBR(MS-DOS)分区表格式和控制

全称为Master Boot Record,主引导记录。早期Linux为了兼容Windows采用的处理启动引导程序和分区表的方法。旧的磁盘扇区都是512个 字节,共含有以下两种信息:

主引导记录(Master Boot Record):安装引导启动程序,共含有446字节;

分区表(partition table):记录整个硬盘分区状态,共含有64字节--只能有4组主要分区,每组有16个字节。

MBR有以下缺点:

无法使用2.2TB以上的磁盘容量;

MBR仅有一个分区,破坏后无法使用;

MBR内部引导程序之后446字节,无法放入更多。

 2、GPT(GUID partition table)磁盘分区表

扇区定义使用逻辑区块地址(Logical Block Address, LBA)进行处理,每一个区块默认512字节。第一个LBA为LBA0,以此类推。

和MBR仅使用一个扇区512字节记录不同,GPT使用34个LBA区块记录分区信息(磁盘结尾的34个LBA区块用于备份,这个很骚气)。

具体的34个LBA的存储内容和用途如下:

LBA0(MBR兼容区块):446字节的启动引导程序 + 分区表特殊符号占位;

LBA1(GPT表头记录):记录分区表本身的位置与大小、校验码,同时记录了备份GPT分区(末尾)的位置,用于纠错。

LBA2-33(实际记录分区处):每个LBA可以记录4组分区记录,每一组记录占用128字节。则从LBA2到LBA33共由32个表,则有4*32=128组分区记录(128个Entry)。GPT在每组记录最后添加了64位来记载开始/结束扇区号码(64位寻址功能),则对于GPT中的单一分区而言,最大容量限制在:2^{64} \times 512 Byte = 2^{63} \times 1K Byte = 2^{33}\times T Byte=8 ZB

管理工具汇总:fdisk不支持GPT,只能使用gdisk或parted。

启动引导程序:grub第一版不支持GPT,grub2以后才会支持。

启动的检测程序:BIOS和UEFI。

三、BOIS和UEFI启动检测程序

两者概念区分:

BIOS:是一个写入到主板上的一个固件(固件是写入到硬件上的一个软件程序),是计算机系统主动执行的第一个程序,使用汇编语言编写。BIOS可以搭配MBR/GPT启动。

UEFI(Unified extensible Firmware Interface, 统一可扩展固件接口):也称为UEFI BIOS,使用C语言编写。UEFI BIOS可以搭配GPT启动。

四、Linux安装时磁盘分区的选择(极其重要)

挂载概念-mount:利用一个目录当成进入点,将磁盘分区的数据防止在该目录下;进入该目录就可以读取该分区。

Linux安装过程的挂载:根目录一定要挂载到某个分区,其他目录按照要求挂载在不同分区即可。

初次使用建议:只需要划分"/"和“交换分区”即可,避免分区不够大造成的窘境。

五、磁盘的分区、格式化、检验与挂载

1、观察磁盘分区状态

共有以下三种方法。

$ lsblk $ lsblk -ip /dev/vda # list block device-列出所有磁盘列表,即所有存储设备.i-使用ASCII字符输出.p-列出设备完整文件名称。 $ blkid (sudo) # 列出设备的UUID(全局唯一标识符)等参数,用于挂载或者使用设备和文件系统。 $ parted /dev/sda print # 列出这个盘上的分区格式信息和文件系统

2、磁盘分区:gdisk/fdisk

操作分区的步骤:通过lsblk和blkid找到磁盘,再通过parted /dev/sd[a-p] print找出内部的分区表类型,最终决定使用gdisk或fdisk进行分区操作。

$ gdisk /dev/sda # 进入分区命令行之后,可以通过?获取指令说明

注意:gdisk后只能接磁盘名称/dev/sda,而不是分区名称/dev/sda1。操作是对整个磁盘而言的。

常用指令如下:

p:输出目前磁盘的状态,打印分区表;

n:新增一个分区;分区号默认-->首个扇区位置默认-->结束扇区默认[可以采用+1G的方式定大小]-->Code设定[默认Linux文件系统8300 / swap为8200 / LVM为8E00]

d:删除一个分区;删除时通过分区号来定位分区

q:不管进行了什么操作,只要最后输入q即可不保存退出;

w:写入并且生效。

注意:键入w之后会提示有warning,在重启之后才会更新内核,载入新的GPT分区表。

$ cat /proc/partitions # 重启之前不会显示新的分区 $ partprobe -s # 手动更新Linux内核的分区表信息,运行之后再次输出上个命令即可显示更新的分区表。

3、磁盘格式化(创建文件系统)

分区完毕之后需要进行文件系统的格式化,命令为mkfs (make filesystem)。

mkfs.xfs /dev/sda1:还需要添加一堆配置,可以使用多个数据流来读写系统,agcount和CPU的内核数搭配。

mkfs.ext4 /dev/sda1:-b选项可以谁知区块的大小,有1K/2K/4K的容量,默认4K。

4、手动挂载

挂载点是目录,目录是进入磁盘分区(文件系统)的入口。需要注意以下三点:

1.单一文件系统不应当被重复挂载于不同目录中(一区不能对应多目录);

2.单一目录不应该重复挂载多个文件系统(一目录不能对应多区);

3.做为挂载点的目录原则上是空目录(非空目录挂载覆盖之后原文件会消失)。

挂载命令为mount,简要使用过程如下:

# 显示分区的UUID: $ blkid /dev/sda1 # 进行挂载: $ mount UUID="..." /data/file # 检查挂载: $ df /data/file # 打印所有挂载信息 $ mount

5、启动自动挂载

使用cat /etc/fstab查看文件下的内容,共有以下六个字段:

$ cat /etc/fstab [设备/UUID] [挂载点] [文件系统] [文件系统参数] [dump] [fsck] # [设备/UUID]:可以填写分区的全称、UUID、文件系统的LABEL名称,建议UUID # [挂载点]:就是个目录 # [文件系统]:写文件必须手动添加:sfs/ext4/vfat/reiserfs/nfs # [文件系统参数]:挂载时的各种参数 # [dump]:备份方案,直接填0 # [fsck]:检验,直接填0

 



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3